package br.com.pfc.application.controller.usuarios;

import br.com.pfc.application.controller.BaseController;
import br.com.pfc.application.dao.UsuarioDAO;
import br.com.pfc.model.Usuario;
import java.util.List;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

/**
 *
 * @author ceatis
 */
@Scope(ScopeType.CONVERSATION)
@Name("usuarioPesquisarAction")
public class UsuarioPesquisarController extends BaseController {

    @In
    private UsuarioDAO usuarioDAO;
    private String paramNome;
    private String paramIdUsuario;
    private String paramUsuario;

    public String getParamUsuario() {
        return paramUsuario;
    }

    public void setParamUsuario(String paramUsuario) {
        System.out.println("String setada no parametro : " + paramUsuario);
        this.paramUsuario = paramUsuario;
    }
    private DataModel listaUsuarios;

    public DataModel getListaUsuarios() {
        if (paramNome != null) {
            if (paramNome.equals("")) {
                return listaUsuarios = new ListDataModel(usuarioDAO.pesquisar());
            }
            return listaUsuarios = new ListDataModel(usuarioDAO.pesquisaPorNome(paramNome));
        } else {
            return listaUsuarios = new ListDataModel(usuarioDAO.pesquisar());
        }
    }

    public String getParamIdUsuario() {
        return paramIdUsuario;
    }

    public void setParamIdUsuario(String paramIdUsuario) {
        this.paramIdUsuario = paramIdUsuario;
    }

    public void setListaUsuarios(DataModel listaUsuarios) {
        this.listaUsuarios = listaUsuarios;
    }

    public DataModel pesquisaPorNome() {
        List<Usuario> resultadoPesquisa = usuarioDAO.pesquisaPorNome(paramNome);
        listaUsuarios = new ListDataModel(resultadoPesquisa);
        if (resultadoPesquisa.size() == 0) {
            adicionarMensagemInformacao("Não foram encontrados resultados.");
        } else {
            adicionarMensagemInformacao("Foram encontrados " + resultadoPesquisa.size() + " usuarios.");
        }
        return listaUsuarios;
    }

    /*
     * Obtem o usuario que foi selecionado na tabela de consulta
     * @return Usuario
     */
    public Usuario getUsuario() {
        return (Usuario) listaUsuarios.getRowData();
    }

    public String getParamNome() {
        return paramNome;
    }

    public void setParamNome(String paramNome) {
        this.paramNome = paramNome;
    }
}
